/*
  Project tarot virtuel is a card game.
  Copyright (C) 2015  Vivien Kraus
  
  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.
  
  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.
  
  You should have received a copy of the GNU General Public License
  along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/


/**
   @mainpage PE 46 : tarot virtuel
   @section intro_sec Introduction
   
   Dans le cadre du projet d'étude n° 46 de l'École Centrale de Lyon
   (2014), notre équipe travaille sur une implémentation du jeu de
   tarot afin d'élaborer une intelligence artificielle. Nous avons
   choisi Qt et C++ pour la partie programmation. La documentation est
   créée avec Doxygen. Par souci de compréhension, et en nous 
   excusant auprès des anglicistes, nous utiliserons uniquement la 
   langue de Molière.

   @section install_sec Installation
   @subsection etape1 Étape 1 : obtenir les sources
   
   Les sources sont disponibles sur
   [Google Code](https://code.google.com/p/tarot-virtuel). Le code est
   sous license GPL. Les auteurs sont les 5 membres du PE.

   Si vous ne souhaitez pas utiliser git, il y a un lien de
   téléchargement dans la page des sources.
   
   @subsection etape2 Étape 2 : Obtenez les outils

   Il faut Qt. Les versions testées par notre équipe sont 4.8 et
   5.3. Pensez à prendre les paquets de développement.
   Pour gcc, les versions 4.6 (Debian wheezy) et 4.8 (Windows) sont
   testées. La compatibilité avec clang est de temps en temps
   vérifiée. 
   Il vous faut également Doxygen si vous voulez compiler la
   documentation (avec tout le mal que nous nous sommes donné pour
   l'écrire, 
   vous pourriez bien le faire, tout de même !)

   Qt : http://www.qt.io/download-open-source/
   MinGW sans Qt : http://www.mingw.org/wiki/Getting_Started
   Doxygen : http://www.stack.nl/~dimitri/doxygen/download.html 

   @subsection etape3 Étape 3 : Compilez les programmes

   Les programmes sont répartis de la façon suivante :
   - À la racine, on sépare les fichiers clients, les fichiers
   serveurs, et la bibliothèque partagée. Avant de compiler un
   serveur ou un client, il est nécessaire de compiler la bibliothèque
   partagée. 
   - Dans les sous-dossiers client et serveur, il y a un sous-dossier
   correspondant aux fichiers partagés par tous les clients (ou tous
   les serveurs). Il est nécessaire de compiler cette autre
   bibliothèque partagée avant de compiler un certain serveur ou un
   certain client.

   La compilation produit des objets dans le dossier build. Il y a les
   binaires compilés, les bibliothèques statiques, les objets et les
   moc. Dans chaque sous-dossier, il ne subsiste qu'un Makefile.

   On peut bien évidemment tout compiler d'un coup, ou compiler tous
   les clients (ou les serveurs), ou compiler un client ou un serveur
   particulier. 

   Vu la quantité relativement importante de code, il vaut mieux
   utiliser plusieurs processus. Par exemple, pour make, spécifier un
   argument "-j3" pour 3 processus (c'est un exemple).

   Premier cas : vous voulez tout compiler.
   -------------

   Compilation bash, avec Debian : 
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   cd chemin/vers/tarot
   qmake
   make 
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

   Deuxième cas : vous voulez compiler tous les clients.
   ------------
  
   Compilation bash, avec Debian : 
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   cd chemin/vers/tarot
   cd shared         # Compilation des fichiers partagés
   qmake             # ...
   make              # ok.
   cd ../client      # Compilation de tous les clients
   qmake             # ...
   make              # ok.
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

   Troisième cas : vous voulez compiler le serveur théâtre.
   ------------
  
   Compilation bash, avec Debian : 
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   cd chemin/vers/tarot
   cd shared            # Compilation des fichiers partagés
   qmake                # ...
   make                 # ok.
   cd ../serveur/shared # Compilation des fichiers partagés
   qmake                # ...
   make                 # ok.
   cd ../theatre        # Compilation du théâtre
   qmake                # ...
   make                 # ok.
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

   @subsection etape4 Étape 4 : Compilez la documentation
   
   Après avoir installé doxygen, lancez-le sur le fichier doc.conf. La
   documentation est disponible dans le dossier doc.
   
   @subsection etape5 Étape 5 : Utilisez

   Voici une brève description de chacun des binaires compilables :
   - serveur/jeu : le serveur de jeu principal. À utiliser pour faire
   des parties à 5.
   - serveur/theatre : le serveur de test d'un client. À utiliser
   pour tester la réaction d'un client sans avoir à fournir d'autres
   clients. Il suit un scénario, qui fixe précisément les questions
   et les réponses et qu'il suit à chaque nouvelle connexion. Pour
   plus d'informations, voir la page @ref theatre.
   - client/bete : c'est l'IA dite "de base", qui essaye de jouer
   chaque carte jusqu'à ce que l'une soit acceptée. Son principal
   avantage est d'être très simple et de faire l'objet d'un tutoriel.
   - client/moche : c'est l'interface utilisateur la plus laide que
   j'aie réussi à faire. Elle permet de tester les réactions d'un
   serveur, mais c'est bien tout.
   - client/debutant : c'est l'IA dite "débutante", qui suit des
   règles empiriques pour jouer. En construction.

   Pour l'instant, c'est un peu maigre. Un client graphique va
   bientôt arriver, et l'IA débutante va bientôt fonctionner. Une IA
   un peu plus puissante est également prévue.

   @subsection etape6 Étape 6 : Testez et donnez-nous des retours

   C'est incroyablement long et ingrat, mais c'est absolument
   nécessaire.
*/

/**
   @file tarot-virtuel/shared/config.hpp
   @brief Définit les options de compilation et la page d'accueil de
   la documentation.
*/
